﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>QUT.Bio External Dependencies</title>
</head>
<body>
    <h1>
		Change list and notes for May 2010 release</h1>
	<p>
		<i>This section should be moved and cleaned up before release.</i></p>
	<p>
		Things that have changed:</p>
	<ul>
		<li>Silverlight content and projects that depend on MBF Bio.dll necessitate a shift 
			to .NET 4.0 and Visual Studio 2010.</li>
		<li>Blast explorer has new collection loader dialog that allows paste in of raw 
			fasta data.</li>
		<li>QUT.Bio.Web has been converted from a web application project to a web site to 
			simplify installation.</li>
		<li>BLAST Explorer now loads taxonomy tree from a gzipped xml document, due to 
			adverse load times and to keep the size of installation download down.</li>
	</ul>
	<p>
		Things that one needs in order to create BLAST databases for use with SilverMap:</p>
	<ul>
		<li>Install NCBI BLAST, from
			<a href="ftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/LATEST">
			ftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/LATEST</a>.<ul>
				<li>To do this, download the executable installer, open a command prompt, navigate 
					to the download folder and run the executable. This will create three folders: 
					bin, data and doc. Copy the folders to your desired blast installation location.</li>
			</ul>
		</li>
		<li>Obtain some genomes.<ul>
			<li>Bacterial genomes (in genbank format) can be obtained from
				<a href="ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/">
				ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/</a>.</li>
			<li>In order to conserve space, I gzip them using cygwin gzip.</li>
			<li>DBLoader detects the suffix .gz and uses a gzip stream reader to load genbank 
				files.<ul>
					<li>One day this could maybe be made a little smarter.</li>
				</ul>
			</li>
			</ul>
		</li>
		<li>Run DBLoader and:<ul>
			<li>Create a SilverMap database.</li>
			<li>Import some genes.</li>
			<li>Do some BLASTS.</li>
			</ul>
		</li>
		<li>Modify connection string in QUT.Bio.Web to point at your newly populated 
			SilverMap database.</li>
		<li>Point SilverMap web or windows client at your QUT.Bio.Web website.</li>
	</ul>
    <h1>
        Introduction</h1>
    <p>
        The QUT Bioinformatics Collection is a suite of interrelated programs and libraries
        designed to help bioinformaticians to visualize, navigate, query and work with genomic
        data. The initial public release of the collection introduces SilverMap, a BLAST
        visualization and navigation tool, along with supporting libraries that allow integration
        in applications that use Microsoft Windows Presentation Foundation (WPF) and Silverlight
        display technologies. The collection is under development and we expect to extend
        the core library and include additional applications in the collection as noted
        below.</p>
    <p>
        Please visit the QUT Bioinformatics Project web page at <a href="http://www.mquter.qut.edu.au/bio">
            http://www.mquter.qut.edu.au/bio</a> to learn more about the collection and
        get an idea about likely inclusions in future releases of the QUT Bioinformatics
        Collection.</p>
    <h1>
        License</h1>
    <p>
        The QUT Bioinformatics Collection is open source software released under the Microsoft
        Public License (Ms-PL) published at <a href="http://www.microsoft.com/opensource/licenses.mspx">
            http://www.microsoft.com/opensource/licenses.mspx</a>. The full license text
        follows.</p>
    <blockquote style="border-width: 1px; border-style: dashed;">
        <h2>
            Microsoft Public License (Ms-PL)</h2>
        <p class="blurb">
            <b>This license governs use of the accompanying software. If you use the software, you
                accept this license. If you do not accept the license, do not use the software.</b></p>
        <ol xmlns="http://www.microsoft.com/MSCOM/MNP2/Schemas">
            <li><strong>Definitions</strong><br />
                The terms "reproduce," "reproduction," "derivative works," and "distribution" have
                the same meaning here as under U.S. copyright law. A "contribution" is the original
                software, or any additions or changes to the software. A "contributor" is any person
                that distributes its contribution under this license. "Licensed patents" are a contributor's
                patent claims that read directly on its contribution.</li><li><strong>Grant of Rights</strong><br />
                    (A) Copyright Grant- Subject to the terms of this license, including the license
                    conditions and limitations in section 3, each contributor grants you a non-exclusive,
                    worldwide, royalty-free copyright license to reproduce its contribution, prepare
                    derivative works of its contribution, and distribute its contribution or any derivative
                    works that you create.<br />
                    (B) Patent Grant- Subject to the terms of this license, including the license conditions
                    and limitations in section 3, each contributor grants you a non-exclusive, worldwide,
                    royalty-free license under its licensed patents to make, have made, use, sell, offer
                    for sale, import, and/or otherwise dispose of its contribution in the software or
                    derivative works of the contribution in the software.</li><li><strong>Conditions and
                        Limitations</strong><br />
                        (A) No Trademark License- This license does not grant you rights to use any contributors'
                        name, logo, or trademarks.
                        <br />
                        (B) If you bring a patent claim against any contributor over patents that you claim
                        are infringed by the software, your patent license from such contributor to the
                        software ends automatically.
                        <br />
                        (C) If you distribute any portion of the software, you must retain all copyright,
                        patent, trademark, and attribution notices that are present in the software.
                        <br />
                        (D) If you distribute any portion of the software in source code form, you may do
                        so only under this license by including a complete copy of this license with your
                        distribution. If you distribute any portion of the software in compiled or object
                        code form, you may only do so under a license that complies with this license.
                        <br />
                        (E) The software is licensed "as-is." You bear the risk of using it. The contributors
                        give no express warranties, guarantees, or conditions. You may have additional consumer
                        rights under your local laws which this license cannot change. To the extent permitted
                        under your local laws, the contributors exclude the implied warranties of merchantability,
                        fitness for a particular purpose and non-infringement.</li></ol>
    </blockquote>
    <h1>
        Installation</h1>
    <p>
        Installation of the QUT Bioinformatics Collection consists of extracting the files
        from the archive QUT.Bio.zip. You are free to save the files in any location, however
        for concreteness we assume here that the package is extracted to <code>c:\bio</code>,
        producing a directory structure that looks like the following:
    </p>
    <pre>   c:\
    +-- bio
         +-- QUT.Bio
              +-- <span style="color: Fuchsia">External dependencies</span>
              +-- Silverlight
                   +-- QUT.Bio
                   +-- SilverMap
              +-- Windows
                   +-- BlastExplorer
                   +-- DBLoader
                   +-- NCBI_EUtils
                   +-- QUT.Bio
                   +-- QUT.Bio.Web
                   +-- SilverMap
                   +-- TaxToXml</pre>
    <p>
        The <b>External dependencies</b> folder is a place to put third party assemblies
        that are used by the collection. Details are covered in the next section.</p>
    <p>
        The <b>Silverlight</b> folder contains:</p>
    <ul>
        <li><b>QUT.Bio:</b> The QUT.Bio core library, from which both Silverlight and Windows
            versions are built. The library currently contains the following namespaces:<ul>
                <li><b>QUT.Bio.Map2d:</b> 2D graph primitives, with smooth zoom, pan and animation capabilities.</li>
                <li><b>QUT.Bio.Graphs:</b> Abstraction layer that defines basic data structures for
                    graphs, designed to simplify implementation of custom graph layout and interaction
                    models.</li>
                <li><b>QUT.Bio.SilverMap:</b> the elements required for a domain-independent SilverMap
                    sequence similarity viewer.</li>
                <li><b>QUT.Bio.Tags:</b> A rather experimental module that provides semantic tagging
                    facilities.</li>
                <li><b>QUT.Bio.Util:</b> Useful nuts and bolts, plus wrappers to hide differences between
                    Silverlight and WPF libraries. </li>
            </ul>
        </li>
        <li><b>SilverMap:</b> The original proof-of-concept SilverMap web client, implemented
            as a Silverlight application. This application displays data from a web service
            which provides an interface to a collection of precomputed BLAST results. See the
            Windows/QUT.Bio.Web project below for a sample implementation of such a web service.</li>
    </ul>
    <p>
        The <b>Windows</b> folder contains:</p>
    <ul>
        <li><b>BlastExplorer:</b> the SilverMap Blast Explorer demonstrated at Microsoft eScience
            2009. This program, built on QUT.Bio and making use of the Microsoft Biology Foundation
            (MBF), allows users to visualize and explore the results of a sequence of related
            NCBI web BLAST runs, overlay and browse conserved domain database entries and access
            cross-referenced sources related to the proteins in the result set.</li>
        <li><b>QUT.Bio:</b> The WPF version of the core QUT.Bio library. This uses the same
            source code as the Silverlight version.</li>
        <li><b>QUT.Bio.Web:</b> A web site that implements a sample web service for consumption
            by the SilverMap web client and WPF applications. The web service talks directly
            to a SQL Server database pre-loaded with BLAST results.</li>
        <li><b>SilverMap:</b> A WPF application that is basically the same as the Silverlight
            web client, except that it runs as a stand-alone windows application. At present
            this application hardly differs from the web client, acting as a test harness for
            the WPF build of the SilverMap library.</li>
        <li><b>DBLoader:</b> a WPF application that can be used to create and populate a database
            suitable for consumption by the QUT.Bio.Web web service.</li>
        <li><b>NCBI_EUtils:</b> a wrapper for the NCBI Entrez Utilities web service, used by
            BlastExplorer.</li>
        <li><b>TaxToXml:</b> loads data from NCBI Taxonomy database into a XML document which
            is used by BlastExplorer to display the taxonomic list.</li>
    </ul>
    <h1>
        External dependencies</h1>
    <p>
        The QUT.Bio library and applications depend on a number of third-party libraries
        which you will need in order to work with the contents of this distribution. We
        have not included copies of third party libraries nor have we created automated
        installers for them.</p>
    <p>
        The easiest way to get a clean first build of QUT.Bio is:</p>
    <ol>
        <li>Download and (if applicable) install any missing assemblies. The assemblies are
            listed along with their download addresses in the table below.</li>
        <li>Copy the specified files from each external library into the <span style="color: Fuchsia">
            QUT.Bio/External dependencies</span> folder.</li>
    </ol>
    <p>
        Once the assemblies have been copied to the right place, MSBuild should pick them
        up without any further action on your part.</p>
    <p>
        If on the other hand you prefer to arrange assemblies in some other manner, you'll
        need to adjust the assembly references in all affected projects to point at the
        locations of the required assemblies in your directory tree.</p>
    <p>
        The required assemblies are listed below along with their download location.</p>
    <div style="margin-left: 0.25in">
        <table cellpadding="3" cellspacing="0" border="1">
            <tr>
                <td valign="top">
                    <strong>Library name</strong>
                </td>
                <td valign="top">
                    <strong>Assembly</strong>
                </td>
                <td valign="top">
                    <strong>Download address</strong>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Microsoft Biology Foundation (MBF) Beta 1
                </td>
                <td valign="top">
                    <code>Bio.dll</code>
                </td>
                <td valign="top">
                    <a href="https://connect.microsoft.com/BIO/Downloads">https://connect.microsoft.com/BIO/Downloads</a>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    DotNetOpenAuth 3.3.1
                </td>
                <td valign="top">
                    <code>DotNetOpenAuth.dll</code>
                </td>
                <td valign="top">
                    <a href="http://code.google.com/p/dotnetopenid/wiki/Downloads?tm=2">http://code.google.com/p/dotnetopenid/wiki/Downloads?tm=2</a>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    SemWeb 1.064
                </td>
                <td valign="top">
                    <code>IKVM.GNU.Classpath.dll</code><br />
                    <code>IKVM.Runtime.dll</code><br />
                    <code>SemWeb.dll</code><br />
                    <code>SemWeb.Sparql.dll</code><br />
                    <code>sparql-core.dll</code><br />
                </td>
                <td valign="top">
                    <a href="http://razor.occams.info/code/semweb/">http://razor.occams.info/code/semweb/</a>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    WPF Toolkit
                </td>
                <td valign="top">
                    <code>WPFToolkit.dll</code>
                </td>
                <td valign="top">
                    <a href="http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117">http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117</a>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Silverlight Toolkit
                </td>
                <td valign="top">
                    <code>SilverlightToolkit.dll</code>
                </td>
                <td valign="top">
                    <a href="http://www.codeplex.com/Silverlight/">http://www.codeplex.com/Silverlight/</a>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Watermarked text box
                </td>
                <td valign="top">
                    <code>Microsoft.Windows.Controls.WatermarkedTextBox.dll</code>
                </td>
                <td valign="top">
                    <a href="http://timheuer.com/blog/archive/2008/10/22/silverlight-watermark-text-box-control.aspx">
                        http://timheuer.com/blog/archive/2008/10/22/silverlight-watermark-text-box-control.aspx</a>
                </td>
            </tr>
        </table>
    </div>
    <h2>
        Notes</h2>
    <ul>
        <li>The WPF Toolkit installer should make WPFToolkit.dll known to visual studio, so
            it is not necessary to copy this file into the QUT.Bio directory tree.</li>
    </ul>
    <h1>
        Configure Database Connection Strings</h1>
    <p>
        Before running the programs in this collection, especially the SilverMap database
        loader (DBLoader) and web site (QUT.Bio.Web), it will be necessary to check and
        adjust the application configuration files in each project. Since DBLoader and QUT.Bio.Web
        both talk directly to SQL Server, you will need to adjust the database connection
        strings to point at the desired SQL Server installation.
    </p>
    <h1>
        Where next</h1>
    <p>
        We are working on and towards a number of significant additions to the collection
        in coming months:</p>
    <ul>
        <li>A .NET port of BioPatML pattern description and query language will be added.</li>
        <li>The SilverGene genome browser will be merged into the collection and extended to
            provide multiple sequence alignment views.</li>
        <li>The beta TRNDiff application, which uses QUT.Bio&#39;s graph layout and visualization
            facilities, will be published as part of the collection.</li>
        <li>Development of the semantic tag capability.</li>
        <li>Adaptation of SilverMap to consume additional data sources.</li>
        <li>Integration with Bio2RDF.</li>
        <li>Inter-op between QUT.Bio tools and each other, plus improved ways of getting data
            into and out of these tools. This includes data integration with widely used spreadsheet
            and other desktop applications.</li>
    </ul>
    <p>
        In addition to the strategic items noted above, work continues on more mundane aspects
        of the project. Internal and external documentation needs work; a number of features
        present in the earlier beta release of SilverMap have been temporarily decommissioned
        during the transitional phase where SilverMap metamorphosed from application to
        a collection of libraries; and some functionality introduced by
    </p>
    <h1>
        Contact</h1>
    <p>
        We are keen to hear about your experiences with QUT.Bio, including bug reports and
        suggestions about ways we can make it better. We have yet to determine the extent
        and mechanisms for external contribution to the project. But if you are interested
        in collaborating with us, either as data providers or active contributors to the
        collection, please contact one of us at the addresses below to initiate a discussion.</p>
    <p>
        <b>Project leader:</b> Associate Professor James M Hogan, <a href="mailto:j.hogan@qut.edu.au">
            j.hogan@qut.edu.au</a><br />
        <b>Senior developer:</b> Lawrence Buckingham, <a href="mailto:l.buckingham@qut.edu.au">
            l.buckingham@qut.edu.au</a>
    </p>
</body>
</html>
